/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package argentracker.activeentity.exceptions;

/**
 * briefly description.
 * 
 * extense description.
 * 
 * @author matero (matero _at_ gmail _dot_ com)
 */
public class UnknownActiveEntityClassException extends ActiveEntityException {

	private static final long serialVersionUID = 5665804453041924718L;

	/**
     * Constructs a generic exceptionfor advice the not known class error.
     */
    public UnknownActiveEntityClassException() {
        super("Not known ActiveEntity class");
    }

    /**
     * Constructs an exception with an specific message to advice the not known class.
     * 
     * @param className
     *            Message describing de error.
     */
    public UnknownActiveEntityClassException(String className) {
        super(className + " is not known as an Active Entity Class");
    }

    /**
     * Constructs an exception advicing the not known class.
     * 
     * @param notKnownClass
     *            Active Entity Class not known.
     */
    public UnknownActiveEntityClassException(Class<?> notKnownClass) {
        super(notKnownClass.getName() + " is not known as an Active Entity Class");
    }

    /**
     * Constructs an exception with a className and a cause.
     * 
     * @param className
     *            Name of the Active Entity Class not known.
     * @param cause
     *            Problem which cause this exception creation.
     */
    public UnknownActiveEntityClassException(String className, Throwable cause) {
        super(className + " is not known as an Active Entity Class", cause);
    }
}
